1. Field of the Invention
The present invention relates to a packet communication system for performing packet data communication through the system including a packet switching network and a telephone switching network, and a data flow control method applied to the system.
2. Description of the Related Art
Packet communication system are widely used in data communications because data transmitting lines having high utility factors are used in the packet communication system.
A typical packet communication system is schematically illustrated in FIG. 1, instancing a case where data are switched and transferred between a data terminal equipment 1 or 11 such as a personal computer and a host computer 8 in the packet communication system. FIG. 1 shows two cases of packet communication systems. One is a packet communication system 100 depicted by a one-dot dashed line enclosure and the other is a packet communication system 200 depicted by a two-dot dashed line enclosure.
The packet communication systems 100 and 200 include a packet switching network (PSN) 7 and a plurality of host computers (HC) 8 connected to PSN 7, respectively. The packet communication system 100 further includes an ordinary telephone switching network (TSN) 4 connected to PSN 7 and a plurality of data terminal equipments (DTE) 1 connected to TSN 4. However, the packet communication system 200 further includes a plurality of DTE 11 connected to PSN 7. DTE 11 is a packet mode DTE having an exclusive packet transmit-receive function, while DTE 1 is a non-packet mode DTE having no packet transmit-receive function. Since the packet communication system 100 includes TSN 4, a modulator and demodulator (MODEM) is necessary to be placed between DTE 1 and TSN 4 and between TSN 4 and PSN 7 respectively. A box having reference numeral 2 or 3 represents the former and a box having reference numeral 5 represents the latter. The packet communication system 200 may be an ideal system for packet communication. However, because of the development of data communication, TSN 4 and the usual non-packet mode DTEs 1 connected to TSN 4 must be allowed to be used in the packet communication system.
In the packet communication system 100, since DTE 1 has no packet transmit-receive function, a packet assembly and disassembly equipment (PAD) 6 is necessary to be provided in the packet communication system 100. In FIG. 1, PAD 6 is included in PSN 7. The PAD 6 is for packing data sent from a plurality of DTEs 1 into a packet by using a buffer memory provided in PAD 6 and for controlling the flow of data stored or to be stored in the buffer memory. This control is called a data flow control.
Generally, a telephone switching network generates an error during switching which must be corrected. Error correction is performed at MODEMs placed across the telephone switching network. In FIG. 1, MODEMs 2 and 5 placed across TSN 4 have an error correction function respectively. However, there is a case that the MODEM arranged between DTE and TSN has no error correction function. MODEM 3 in FIG. 1 is the MODEM having no error correction function.
Thus, the packet communication system 100 includes not only the ordinary TSN 4 but also many types of ordinary and new equipment connected to TSN 4, such as ordinary non-packet mode DTEs 1, new type MODEMs 2 and 5 having the error correction function and ordinary MODEM 3 having no error correction function. Therefore, for maintaining the packet communication system 100, many kinds of data flow control must be performed under various conditions for the equipment. Accordingly, many problems regarding the data flow control occur in the packet communication system 100.
FIG. 2 shows a block diagram of the packet communication system 100 of the related art. In FIG. 2, the same reference numerals as in FIG. 1 designate the same network or equipment as in FIG. 1. Actually, a plurality of DTEs 1 are connected to TSN 4 and a plurality of HCs 8 are connected to PSN 7, however, two DTEs 1 and one HC 8 are representatively depicted in FIG. 2. Therefore, the data flow control for data transmitted between one of the DTEs 1 and HC 8 through TSN 4 and PSN 7 will be discussed with reference to FIG. 1. Since DTEs 1 are non-packet mode DTEs, it is required to provide a MODEM between respective DTE 1 and TSN 4. The MODEM is separated into two kinds in accordance with whether the MODEM has an error correcting function or not. Formerly the error correcting function has not been provided in the MODEM. However, recently a MODEM having the error correcting function has been produced as an article of commerce. For instance, a MODEM called "MNP", which is an abbreviation of Microcom Network Protocol, is a typical MODEM having the error correcting function. The MODEM called MNP is produced by MICROCOM Inc. in U.S.A. and MNP may be a registered tradename of MICROCOM Inc. MNP is intended to be a standard MODEM recommended by the Consultative Committee of International Telegraph and Telephone (CCITT), having the error correction function. When data are sent to the MNP, the MNP checks the data and corrects the error if there is an error in the data, producing a corrected data. Then, modulation is performed in the MNP by using the corrected data and a modulated data is output from the MNP. However, at the same time, the corrected data is stored in a buffer memory provided in the MNP. The stored corrected data is resent from the MNP when the MNP is required to resend the corrected data.
In FIG. 1 or 2, the MNP is applied to MODEMs 2 and 5 respectively. Therefore, MODEM 2 or 5 will be called MMD (MNP Modulator Demodulator) 2 or 5 hereinafter. MMDs 2 and 5 have a buffer memory (BM) 21 and BM 51 respectively for storing the corrected data. On the other hand, MODEM 3 has no error correcting function, so that MODEM 3 has no buffer memory and will be called NMD (Not-MNP Modulator Demodulator) 3 hereinafter.
As shown in FIGS. 1 and 2, PSN 7 includes PAD 6 for performing the data flow control. As shown in FIG. 2, PAD 6 includes a buffer memory (BM) 63 for storing data to perform packet switching, and is connected to MMD 5.
In FIG. 2, although the functions of the two DTEs 1 are the same, the DTE 1 connected to MMD 2 will be called DTE 1-1 and the DTE 1 connected to NMD 3 will be called DTE 1-2 hereinafter for the sake of the explanation of the packet communication system 100. In FIG. 2, when a data is sent from DTE 1-1 to PAD 6 or vice versa, error correction is performed by MMDs 2 and 5 in cooperation. For instance, when a data is sent from DTE 1-1 to PAD 6 through MMD 2, TSN 4 and MMD 5, MMDs 2 and 5 check and correct errors as follows. MMD 2 checks whether there is an error in the data sent from DTE 1-1. If there is an error in the data, MMD 2 corrects the error, producing a corrected data. Then MMD 2 outputs the corrected data and at the same time stores the corrected data in BM 21. When MMD 5 receives the data from MMD 2, MMD 5 checks whether there is another error in the data sent from MMD 2. If there is another error in the data sent from MMD 2 through TSN 4, MMD 5 asks MMD 2 to resend the correct data. Then, MMD 2 resends the correct data. The above steps are repeated until the correct data is received at MMD 5. When the correct data is received at MMD 5 from MMD 2, MMD 5 sends the correct data to BM 63 in PAD 6 and at the same time stores the correct data into BM 51. In the above, the steps of data correction are only described and the modulation and demodulation of data performed at MMDs 2 and 5 are omitted from being described. When data is sent from PAD 6 to DTE 1-1, the error correction is performed at MMDs 2 and 5 the same as above mentioned, using BMs 21 and 51 respectively.
In the error correction operation described above, when BM 63 in PAD 6 is in a state (which will be called a "not-full state" hereinafter) having room for storing data, the corrected data can be transferred to BM 63 from MMD 5 as mentioned above. However, when BM 63 is in a state (which will be called a "full state" hereinafter) of having no room for storing data, MMD 5 is stopped from transferring the corrected data to BM 63 until BM 63 becomes the not-full state. Also as above-mentioned, when BM 51 in MMD 5 becomes the full state, MMD 2 is stopped from transferring the corrected data to MMD 5 until BM 51 becomes the not-full state. Further, when BM 21 in MMD 2 becomes the full state, DTE 1-1 is stopped from transferring data to MMD 2 until BM 21 becomes the not-full state. In contrast to the above, when BM 51 is in the not-full state, a data stored in BM 63 is transferred to MMD 5. However, when BM 51 is in the full state, PAD 6 is stopped from transferring the data to MMD 5 until BM 51 becomes the not-full state. Also as above-mentioned, when BM 21 is in the full state, MMD 5 is stopped from transferring the data to MMD 2 until BM 21 becomes the not-full state.
In a case where data is transferred from DTE 1-2 to BM 63 through NMD 3, TSN 4 and MMD 5, the data is directly transferred to BM 63. This stops MMD 5 from performing error correction by using BM 51 because NMD 3 has no error correcting function and no buffer memory. In this case, when BM 63 is in the full state, DTE 1-2 is stopped from sending data to BM 63.
The data transfer performed between DTE 1-1 and BM 63 or between DTE 1-2 and BM 63 as mentioned above is carried out by data flow control. The data flow control is performed in accordance with various control procedures. For instance, the data flow control carried out between MMD 2 and MMD 5 is performed by a control procedure predetermined so as to be matched with the MODEM MNP, the data flow control carried out between MMD 5 and PAD 6 is performed by control signals, and the data flow control carried out between DTE 1-1 and MMD 2 is performed by control characters such as DC1 and DC3 of X.3 recommended the CCITT.
In FIG. 2, symbols RTS and CTS are signal lines for transferring the control signals and symbols TXD and RXD are data lines on which the control characters are transferred with payload data. The data flow control performed by such control signals and characters will be detailed below with reference to FIG. 2.
As shown in FIG. 2, signal lines RTS (Request To Send) and CTS (Clear To Send) are provided between MMD 5 and PAD 6 and between MMD 2 and DTE 1-1. These signal lines are used for transferring control signals. For instance, when BM 63 in PAD 6 becomes the full state because of data sent from MMD 5 through a data line RXD (Received Data), PAD 6 sends a control signal of logic "0" to MMD 5 through RTS so as to stop MMD 5 from sending data to BM 63, and when BM 63 becomes the not-full state, PAD 6 sends a control signal of logic "1" to MMD 5 through RTS so as to make MMD 5 start to send data to BM 63 through RXD. As above-mentioned, when BM 51 in MMD 5 becomes the full state because of data sent from PAD 6 through a data line TXD (transmitted Data), MMD 5 sends a control signal "0" to PAD 6 through CTS so as to stop PAD 6 from sending the data to MMD 5. When BM 51 becomes the not-full state, MMD 5 sends a control signal "1" to PAD 6 through CTS so as to make PAD 6 start to send the data to MMD 5 through TXD.
The data flow control performed between DTE 1-1 and MMD 2 is carried out by either the control characters such as DC1 and DC3 or the same control signals as those used in the data flow control between MMD 5 and PAD 6.
In case of transferring data from DTE 1-2 to PAD 6 through NMD 3, TSN 4 and MMD 5, it is not necessary to carry out data flow control between DTE 1-2 and NMD 3, NMD 3 and MMD 5, and MMD 5 and PAD 6 individually. The data flow control between DTE 1-2 and PAD 6 is carried out only by the control characters DC1 and DC3, which is predesignated by either DTE 1-2 or HC 8. For instance, when BM 63 becomes the full state because of data transferred from DTE 1-2, PAD 6 sends DC3 to DTE 1-2 through TXD connecting PAD 6 with MMD 5, MMD 5, TSN 4, NMD 3 and TXD connecting NMD 3 with DTE 1-2, for stopping DTE 1-2 from sending data to PAD 6. When BM 63 becomes the not-full state, PAD 6 sends DC1 to DTE 1-2 through the same path as the above for making DTE 1-2 start to send data to PAD 6.
As shown in FIG. 2, PAD 6 includes of: a control signal transmit-receive controller (SGC) 61 for controlling a transmit-receive function of control signals transferred between PAD 6 and MMD 5 through CTS and RTS respectively; a data transmit-receive unit (TRU) 62 for sending and receiving the payload data with the control characters between PAD 6 and MMD 5 through TXD and RXD respectively; a buffer memory (BM) 63 for storing data so as to form a packet; a data flow controller (DFC) 64 operating with control characters, for counting a quantity of storing data into BM 63 and making TRU 62 send the control character such as DC1 or DC3 to MMD 5 through TXD, together with the payload data sent from TRU 62; and a data flow controller (SFC) 65 operating with control signals, for counting a quantity of storing data into BM 63 and making SGC 61 send the control signal "0" or "1" to MMD 5 through RTS and for discriminating the control signal "0" or "1" received from MMD 5 through CTS and SGC 61 and making TRU 62 control the transmission of data to be sent to MMD 5 through TXD.
However, when PAD 6 is used in the packet communication system 100 shown in FIG. 2, there have been problems about the data flow control stated above.
In FIG. 2, when PAD 6 is connected with DTE 1-1 through MMD 5, TSN 4 and MMD 2, problems occur as will be explained below in reference to FIGS. 3(a), 3(b) and 3(c). In FIGS. 3(a), 3(b) and 3(c), the same reference numerals used in FIG. 2 designate the same equipment or network as in FIG. 2, and reference symbols "f" and "n" represent the full state and the not-full state of the buffer memory respectively.
When, as shown in FIG. 3(a), data flow control is performed respectively between DTE 1-1 and MMD 2 by the control characters DC1 and DC3, between MMD 2 and MMD 5 by the predetermined procedure matched to the MNP MODEM as described before and between MMD 5 and PAD 6 by the control signals "1" and "0", and furthermore when data flow control is performed between DTE 1-1 and PAD 6 by the control characters DC1 and DC3 and DTE 1-1 is preset so as to be controlled only by the control characters DC1 and DC3, the following problem (first problem) occurs.
First problem: When BM 63 is in the full state, BM 51 and BM 21 become the full state successively, and DTE 1-1 is controlled so as not to send data to MMD 2 by the control character DC3 sent from MMD 2. After that, when BM 63 becomes the not-full state, SFC 65 in PAD 6 detects the not-full state of BM 63 and makes SGC 61 in PAD 6 send a control signal "1" to MMD 5 through RTS and at the same time DFC 64 in PAD 6 detects the not-full state of BM 63 and makes TRU 62 in PAD 6 send a control character DC1 to DTE 1-1 through TXD, MMD 5, TSN 4, and MMD 2, as shown in FIG. 3(b). However, since DC1 is received by DTE 1-1 earlier than BM 21 in MMD 2 becomes the not-full state because of the control signal "1" applied to MMD 5 from PAD 6, data are sent from DTE 1-1 to MMD 2 though BM 21 in the full state. This produces a problem (first problem) that the data sent from DTE 1-1 to MMD 2 are annulled.
When, as shown in FIG. 3(c), PAD 6 is connected to DTE 1-1 through MMD 5, TSN 4 and MMD 2, and when data flow control is performed between DTE 1-1 and MMD 2 by the control signals "1" and "0", between MMD 2 and MMD 5 by the predetermined procedure matched to MNP MODEM as described before and between MMD 5 and PAD 6 by the control signals "1" and "0", and furthermore when data flow control is performed between DTE 1-1 and PAD 6 by DC1 and DC3 and DTE 1-1 is preset so as to be controlled only by the control signals "1" and "0", the following problem (second problem) occurs:
Second problem: When BM 51 and therefore BMs 51 and 21 are in the not-full state, MMD 2 sends the control signal "1" to DTE 1-1 and DTE 1-1 sends data to MMD 2. Then, when BM 63 becomes the full state, SGC 61 sends the control signal "0" to MMD 5 and TRU 62 sends the control character DC3 to DTE 1-1. However, DTE 1-1 continues to send data to MMD 2 even though PAD 6 sends DC3 to DTE 1-1 because DTE 1-1 has been preset so as to be controlled only by the control signals "1" and "0". This results in a problem (second problem) that DC3 is nulled, so that DTE 1-1 performs an invalid operation.
As seen from the above, PAD 6 has two functions one of which is for producing the control signals "1" and "0" and the other of which is for producing the control characters DC1 and DC3. As a result, the data flow control based on the control signals "1" and "0" and that based on the control characters DC1 and DC3 are affected by each other in the packet communication system 100, producing the problems that the data flow control cannot be performed normally and correctly.